package com.wonders.hisdoctor.station.project.base.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wonders.hisdoctor.station.project.base.domain.OutpPresc;
import com.wonders.hisdoctor.station.project.record.vo.DrugListVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <p>门诊医嘱处方明细记录：每条医嘱主记录可以对应多条处方医嘱明细记录。 dao </p>
 * <p>db_table: OUTP_PRESC</p>
 *
 * @author tong_aj
 * @date 2021/01/19
 */
@Mapper
@Repository
public interface OutpPrescMapper extends BaseMapper<OutpPresc> {

    /**
     * 门诊医嘱处方明细记录_批量新增
     *
     * @param outpPrescs 处方明细_list
     * @return int
     */
    int batchInsert(List<OutpPresc> outpPrescs);

    /**
     * 批量更新
     *
     * @param list 门诊医嘱处方明细表
     * @return int
     */
    int batchUpdate(List<OutpPresc> list);

    /**
     * 批量删除
     *
     * @param outpPrescs 门诊医嘱处方明细表
     * @return int
     */
    int deleteBatch(List<OutpPresc> outpPrescs);

    /**
     * 查询不可用库存
     *
     * @return
     */
    int queryAmount();

    /**
     * 获得当前serialNo下最大的ITEM_NO
     *
     * @param serialNo
     * @return
     */
    Integer getMaxItemNo(String serialNo);

    /**
     * 通过下拉医嘱明细，查询处方明细表中，已开单和已缴费状态的医嘱明细数量总合
     * @param voList
     * @return
     */
    List<Map<String,Object>> getPrescsSumAmount(@Param("voList") List<DrugListVo> voList);


    /**
     * 取消成组
     *
     * @param updateList
     * @return
     */
    int ungroup(List<OutpPresc> updateList);
}
